package com.sdk4.jinritemai.model.bean;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * 商品详情信息
 */
@NoArgsConstructor
@Data
public class DoudianProductDetailResult {
    private Long productId;
    private String productIdStr;
    private Long outProductId;
    private String outerProductId;
    private int openUserId;
    private String name;
    private String description;
    private int marketPrice;
    private int discountPrice;
    private int status;
    private long specId;
    private int checkStatus;
    private String mobile;
    private int firstCid;
    private int secondCid;
    private int thirdCid;
    private CategoryDetailBean categoryDetail;
    private int payType;
    private String recommendRemark;
    private String extra;
    private int isCreate;
    private String createTime;
    private String updateTime;
    private String productFormat;
    private String img;
    private int presellType;
    private int maximumPerOrder;
    private int limitPerBuyer;
    private int minimumPerOrder;
    private LogisticsInfoBean logisticsInfo;
    private String afterSaleService;
    private int priceHasTax;
    private List<String> pic;
    private List<SpecPicsBean> specPics;
    private List<SpecPricesBean> specPrices;
    private List<SpecsBean> specs;
    private List<QualityListBean> qualityList;

    @NoArgsConstructor
    @Data
    public static class CategoryDetailBean {
        private Long firstCid;
        private Long secondCid;
        private Long thirdCid;
        private Long fourthCid;
        private String firstCname;
        private String secondCname;
        private String thirdCname;
        private String fourthCname;
    }

    @NoArgsConstructor
    @Data
    public static class LogisticsInfoBean {
        private int customsClearType;
        private int originRegionId;
        private int sourceRegionId;
        private int brandRegionId;
        private int taxPayer;
        private int netWeightQty;
    }

    @NoArgsConstructor
    @Data
    public static class SpecPicsBean {
        private long specDetailId;
        private String pic;
    }

    @NoArgsConstructor
    @Data
    public static class SpecPricesBean {
        private Long skuId;
        private Long outSkuId;
        private String outerSkuId;
        private Integer stockNum;
        private BigDecimal price;
        private String code;
        private Integer settlementPrice;
        private Integer stepStockNum;
        private Integer promStockNum;
        private Integer promStepStockNum;
        private Long specDetailId1;
        private Long specDetailId2;
        private Long specDetailId3;
        private Integer skuType;
        private String supplierId;
        private Object promotionStockNum;
        private Object promotionStepStockNum;
        private CustomsReportInfoBean customsReportInfo;
        private Integer lockStockNum;
        private Integer lockStepStockNum;
        private Object stockNumMap;
        private List<Long> specDetailIds;

        @NoArgsConstructor
        @Data
        public static class CustomsReportInfoBean {
            private String hsCode;
            private Integer firstMeasureQty;
            private Integer secondMeasureQty;
            private String firstMeasureUnit;
            private String secondMeasureUnit;
            private String unit;
            private String reportName;
            private String reportBrandName;
            private String usage;
            private String gModel;
            private String barCode;
        }
    }

    @NoArgsConstructor
    @Data
    public static class SpecsBean {
        private Long id;
        private Long specId;
        private String name;
        private Long pid;
        private Integer isLeaf;
        private List<ValuesBean> values;

        @NoArgsConstructor
        @Data
        public static class ValuesBean {
            private Long id;
            private Long specId;
            private String name;
            private Long pid;
            private Integer isLeaf;
            private Integer status;
        }
    }

    @NoArgsConstructor
    @Data
    public static class QualityListBean {
        private String qualityKey;
        private String qualityName;
        private List<QualityAttachmentsBean> qualityAttachments;

        @NoArgsConstructor
        @Data
        public static class QualityAttachmentsBean {
            private Integer mediaType;
            private String url;
        }
    }
}
